home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / COMMUNIC / H191.ZIP / CA29-3.EXE / DIALER.CMD < prev    next >
OS/2 REXX Batch file  |  1993-02-26  |  8KB  |  607 lines

  1. CLEA
  2. CURS N8,N9
  3. ON ESCA GOSU Exit
  4. LEGE " Multi-dialer pop-up"
  5. SET TTHR OFF
  6. CLOG "* Dialer multi-dialer invoked"
  7. GOSU Window
  8. GOSU Get_Last
  9. GOSU Parse_Pa
  10. GOSU All_Fiel
  11. LOCA 7,8
  12. Main_Loo:
  13. SET TTHR OFF
  14. KEYG S0
  15. Have_Key:
  16. SWIT S0
  17. CASE "4900"
  18. GOTO PgUp
  19. ENDC
  20. CASE "5100"
  21. GOTO PgDn
  22. ENDC
  23. CASE "4700"
  24. GOTO Home
  25. ENDC
  26. CASE "4F00"
  27. GOTO End
  28. ENDC
  29. CASE "0D"
  30. GOTO Perform
  31. ENDC
  32. CASE "4800"
  33. GOTO UpLine
  34. ENDC
  35. CASE "5000"
  36. GOTO DnLine
  37. ENDC
  38. CASE "4B00"
  39. GOTO Left
  40. ENDC
  41. CASE "4D00"
  42. GOTO Right
  43. ENDC
  44. CASE "09"
  45. GOTO Right
  46. ENDC
  47. CASE "0F00"
  48. GOTO Left
  49. ENDC
  50. ENDS
  51. IF NOT NULL S0(1:3)
  52. SOUN 100,100
  53. GOTO Main_Loo
  54. ENDI
  55. CURS N0,N1
  56. IF GE N1 11
  57. GOSU Enter_DD
  58. GOTO Have_Key
  59. ELSE
  60. GOSU Enter_LD
  61. GOTO Right
  62. ENDI
  63. PgUp:
  64. CURS N1,N2
  65. IF GE N2 11
  66. N0=N10[N1-7]
  67. N3=N0/1000
  68. N0=N0-(N0/1000)*1000
  69. N0=N0-1
  70. IF LT N0 0 N0=100
  71. N0=N0+N3*1000
  72. ELSE
  73. N0=N10[N1-7]
  74. N3=N0-(N0/1000)*1000
  75. N0=N0/1000
  76. N0=N0-1
  77. IF LT N0 0 N0=4
  78. N0=N3+N0*1000
  79. ENDI
  80. N10[N1-7]=N0
  81. GOSU One_Fiel
  82. GOTO Main_Loo
  83. PgDn:
  84. CURS N1,N2
  85. IF GE N2 11
  86. N0=N10[N1-7]
  87. N3=N0/1000
  88. N0=N0-(N0/1000)*1000
  89. N0=N0+1
  90. IF GT N0 100 N0=0
  91. N0=N0+N3*1000
  92. N10[N1-7]=N0
  93. GOSU One_Fiel
  94. ELSE
  95. N0=N10[N1-7]
  96. N3=N0-(N0/1000)*1000
  97. N0=N0/1000
  98. N0=N0+1
  99. IF GT N0 4 N0=0
  100. N0=N3+N0*1000
  101. ENDI
  102. N10[N1-7]=N0
  103. GOSU One_Fiel
  104. GOTO Main_Loo
  105. UpLine:
  106. CURS N0,N1
  107. N0=N0-1
  108. IF LT N0 7 N0=16
  109. N1=8
  110. IF GE N1 11 N1=11
  111. LOCA N0,N1
  112. GOTO Main_Loo
  113. DnLine:
  114. CURS N0,N1
  115. N0=N0+1
  116. IF GT N0 16 N0=7
  117. N1=8
  118. IF GE N1 11 N1=11
  119. LOCA N0,N1
  120. GOTO Main_Loo
  121. Home:
  122. LOCA 7,8
  123. GOTO Main_Loo
  124. End:
  125. LOCA 11,8
  126. GOTO Main_Loo
  127. Left:
  128. CURS N0,N1
  129. IF GE N1 11
  130. N1=8
  131. ELSE
  132. N0=N0-1
  133. N1=11
  134. ENDI
  135. IF LT N0 7 N0=16
  136. LOCA N0,N1
  137. GOTO Main_Loo
  138. Right:
  139. CURS N0,N1
  140. IF GE N1 11
  141. N0=N0+1
  142. N1=8
  143. ELSE
  144. N1=11
  145. ENDI
  146. IF GT N0 16 N0=7
  147. LOCA N0,N1
  148. GOTO Main_Loo
  149. Exit:
  150. REST
  151. LOCA N8,N9
  152. EXIT
  153. Enter_DD:
  154. CURS N1,N2
  155. N0=N10[N1-7]
  156. N0=(N0/1000)*1000
  157. GOSU One_Fiel
  158. N6=0
  159. S9=""
  160. IF STRCMP S0 " "
  161. N10[N1-7]=N0
  162. GOTO DD_Keypr
  163. ENDI
  164. IF STRCMP S0 "08"
  165. N10[N1-7]=N0
  166. GOTO DD_Keypr
  167. ENDI
  168. DD_Test:
  169. IF STRCMP S0 " "
  170. S0="4D00"
  171. GOTO DD_Store
  172. ENDI
  173. IF STRCMP S0 "?"
  174. GOSU Ask_Dial
  175. IF SUCCESS
  176. S9=S2
  177. LENG S9 N6
  178. S0="4D00"
  179. GOTO DD_Store
  180. ENDI
  181. GOTO DD_Keypr
  182. ENDI
  183. SWIT S0
  184. CASE "09"
  185. GOTO DD_Store
  186. ENDC
  187. CASE "0D"
  188. S0="4D00"
  189. GOTO DD_Store
  190. ENDC
  191. CASE "08"
  192. IF GT N6 0
  193. CURS N1,N2
  194. N2=N2-1
  195. LOCA N1,N2
  196. ATSA N1,N2 (default) " "
  197. S1(N6:N6)=" "
  198. N6=N6-1
  199. ENDI
  200. GOTO DD_Keypr
  201. ENDC
  202. ENDS
  203. IF NOT NULL S0(1:3) GOTO DD_Store
  204. CTOI S0 N0
  205. IF LT N0 48 GOTO DD_Invalid
  206. IF GT N0 57 GOTO DD_Invalid
  207. S9(N6:N6)=S0
  208. N6=N6+1
  209. CURS N1,N2
  210. ATSA N1,N2 (default) S0(0:0)
  211. N2=N2+1
  212. LOCA N1,N2
  213. IF GE N6 3
  214. S0="4D00"
  215. GOTO DD_Store
  216. ENDI
  217. GOTO DD_Keypr
  218. DD_Inval:
  219. SOUN 100,100
  220. DD_Keypr:
  221. KEYG S0
  222. GOTO DD_Test
  223. DD_Store:
  224. IF EQ N6 0 GOTO DD_Exit
  225. N3=S9
  226. IF GT N3 100 N3=100
  227. IF LT N3 1 N3=1
  228. N0=N10[N1-7]
  229. N0=N3+(N0/1000)*1000
  230. N10[N1-7]=N0
  231. DD_Exit:
  232. N0=N10[N1-7]
  233. GOSU One_Fiel
  234. RETU
  235. Enter_LD:
  236. SWIT S0
  237. CASE "+"
  238. N0=1
  239. ENDC
  240. CASE "-"
  241. N0=2
  242. ENDC
  243. CASE "#"
  244. N0=3
  245. ENDC
  246. CASE "@"
  247. N0=4
  248. ENDC
  249. CASE "1"
  250. N0=1
  251. ENDC
  252. CASE "2"
  253. N0=2
  254. ENDC
  255. CASE "3"
  256. N0=3
  257. ENDC
  258. CASE "4"
  259. N0=4
  260. ENDC
  261. DEFA
  262. N0=0
  263. S0=" "
  264. ENDC
  265. ENDS
  266. CURS N1,N2
  267. ATSA N1,N2 (Default) S0(0:0)
  268. N3=N0
  269. N0=N10[N1-7]
  270. N0=N0-(N0/1000)*1000
  271. N0=N0+N3*1000
  272. N10[N1-7]=N0
  273. GOSU One_Fiel
  274. RETU
  275. One_Fiel:
  276. S10="                                       "
  277. ATSA N1,7 (Default) S10(0:67)
  278. IF ZERO N0 RETURN
  279. N2=N0/1000
  280. N3=N0-(N0/1000)*1000
  281. IF NOT ZERO N2
  282. S10(0:2)=" "*N2
  283. LD S11 N2
  284. S10(8:30)=S11
  285. ENDI
  286. IF NOT ZERO N3
  287. S10(4:6)=N3
  288. DNUM S11 N3
  289. S10(32:45)=S11
  290. DIRE S11 N3
  291. S10(47:79)=S11(0:19)
  292. ENDI
  293. PRES S10
  294. ATSA N1,7 (Default) S10
  295. RETU
  296. All_Fiel:
  297. FOR N20=0,9
  298. N0=N10[N20]
  299. N1=N20+7
  300. IF NOT ZERO N0 GOSUB One_Field
  301. ENDF
  302. RETU
  303. Parse_Pa:
  304. FOR N0=0,45,5
  305. N1=N0+3
  306. ATOI S19(N0:N1) N1
  307. IF ERROR N1=0
  308. N10=N11
  309. N11=N12
  310. N12=N13
  311. N13=N14
  312. N14=N15
  313. N15=N16
  314. N16=N17
  315. N17=N18
  316. N18=N19
  317. N19=N1
  318. ENDF
  319. RETU
  320. Get_Last:
  321. S19="DIALER.DAT"
  322. IF ISFILE S19
  323. FOPENI "DIALER.Dat" TEXT
  324. IF FAILURE GOTO No_Get
  325. ELSE
  326. GOTO No_Get
  327. ENDI
  328. READ S19 80 N0
  329. IF EOF GOTO No_Get
  330. FCLOSEI
  331. RETU
  332. No_Get:
  333. S19="    "
  334. RETU
  335. Window:
  336. SAVE 1,5 23 75
  337. BOX 1,5 23 75 (default)
  338. ATSA 1,7 (default) " COM-AND Multi-dialer "
  339. ATSA 2,7 (default) "Select up to 10 dialing directory entries (using or not using a long"
  340. ATSA 3,7 (default) "distance prefix).  Sequential redial begins when you hit return."
  341. ATSA 4,5 (default) "├─────────────────────────────────────────────────────────────────────┤"
  342. ATSA 5,7 (default) "LD# DD#   (from LD directory)     (from dialing directory)"
  343. ATSA 6,7 (default) "--- --- ----------------------- -------------- --------------------"
  344. ATSA 17,5 (default) "├─────────────────────────────────────────────────────────────────────┤"
  345. ATSA 18,7 (default) "Use cursor up/down to select a line in the display.  Use cursor left"
  346. ATSA 19,7 (default) "and right to select a field.  ?/PgUp/PgDn cycle possible values.  LD"
  347. ATSA 20,7 (default) "codes are 0,' ' = none, 1 or +, 2 or -, 3 or #, 4 or @.  DD codes"
  348. ATSA 21,7 (default) "are 1-100.     Current values are always displayed.  Empty entries "
  349. ATSA 22,7 (default) "are ignored.  A carriage return begins the dialing sequence."
  350. ATSA 23,30 (default) " Press ESC to exit "
  351. RETU
  352. Exit_Per:
  353. HANG
  354. REST
  355. GOTO Exit
  356. Perform:
  357. N6=0
  358. FOR N1=7,16
  359. N0=N10[N1-7]
  360. N2=N0-N0/1000*1000
  361. IF NOT ZERO N2 GOTO Set_up
  362. ENDF
  363. SOUN 100,100
  364. GOTO Main_Loo
  365. Set_Up:
  366. SET TTHR ON
  367. KFLU
  368. SET RDIS OFF
  369. ON ESCA GOSU Exit_Per
  370. LEGE " Cycling through selected #'s"
  371. GOSU Set_Last
  372. SAVE 17,5 23 75
  373. BOX 17,5 23 75 (default)
  374. ATSA 17,7 (default) " COM-AND Dialing "
  375. ATSA 23,22 (default) " CR to move to next, ESC to terminate "
  376. N6=0
  377. N5=35
  378. Loop:
  379. FOR N1=7,16
  380. N0=N10[N1-7]
  381. N2=N0-N0/1000*1000
  382. N3=N0/1000*1000
  383. IF NOT ZERO N2
  384. RFLU
  385. ATSA 22,7 (default) "Hanging up     "
  386. S0="_CLOG"
  387. SET CALL OFF
  388. HANG
  389. SET CALL S0
  390. WAIT "OK" 10
  391. N6=N6+1
  392. ATSA 18,7 (default) "Retry #: "*N6*";  Started: "*"_time"*";  Timeout = "*N5*" seconds"
  393. SCRO 0,19,7 22,36 (defa)
  394. DIRE S1 N2
  395. PRES S1
  396. DNUM S2 N2
  397. LJ S2
  398. IF NOT NULL "_DDAC"
  399. S0="1-"*"_DDAC"
  400. LENG S0 N21
  401. IF STRCMP S0 S2(0:N21-1) S2=S2(N21:79)
  402. IF FIND S2(0:0) "-" S2=S2(1:79)
  403. ENDI
  404. LD S3 N3
  405. ATSA 19,7 (default) S1
  406. ATSA 20,7 (default) S2&S3
  407. GOSU Set_Dial
  408. PAUS 1
  409. S0="_DPRE"&S3&""&S2&""&"_DSUF"&""
  410. TRAN S0
  411. ATSA 22,7 (default) "Dialing     "
  412. N0=N5
  413. SET TIME
  414. WHIL GT N0 0
  415. RGET S0 80 N0
  416. IF NOT NULL S0
  417. IF FIND S0 "_MCONNECT"&"" GOTO Got_It
  418. ATSA 22,7 (default) "                  "
  419. ATSA 22,7 (default) S0
  420. IF NOT FIND S0 S2&"" and NOT FIND S0 "RINGING"
  421. PAUS 5
  422. ATSA 22,7 (default) "Cycling              "
  423. N0=-N5
  424. ENDI
  425. ENDI
  426. TSIN N3,N3,N4
  427. IF N0 GT 0 N0=N5-N4
  428. ENDW
  429. ENDI
  430. ENDF
  431. GOTO Loop
  432. Set_Dial:
  433. DPAR S0 N2
  434. S1=S0(5:5)
  435. SWIT S1
  436. CASE "E"
  437. SET PARI EVEN
  438. ENDC
  439. CASE "O"
  440. SET PARI ODD
  441. ENDC
  442. CASE "N"
  443. SET PARI NONE
  444. ENDC
  445. ENDS
  446. S1=S0(7:7)
  447. SET DATA S1
  448. S1=S0(9:9)
  449. SET STOP S1
  450. IF NOT STRCMP "_DDOVER" "ON"
  451. SET BAUD S0(0:3)
  452. ELSE
  453. S0(0:3)="_PARM"(0:3)
  454. ENDI
  455. ATSA 21,7 (default) S0
  456. SET DUPL FULL
  457. IF STRCMP S0(11:11) "Y" SET DUPLEX HALF
  458. RETU
  459. Got_It:
  460. REST
  461. REST
  462. LOCA N8,N9
  463. SET RDIS ON
  464. N0=0
  465. N10[N1-7]=N0
  466. GOSU Set_Last
  467. DIRE S0 N2
  468. SET CLOC NEW
  469. CLOG "CONNECT (dialer.cmd): "*S0
  470. DSCR S0,N2
  471. IF NOT NULL S0
  472. SET LINK ON
  473. EXEC S0
  474. ENDI
  475. ALAR
  476. CONN
  477. Set_Last:
  478. S19="DIALER.DAT"
  479. FOPENO "DIALER.Dat" TEXT
  480. IF FAILURE RETURN
  481. S19(0:4)=N10
  482. S19(5:9)=N11
  483. S19(10:14)=N12
  484. S19(15:19)=N13
  485. S19(20:24)=N14
  486. S19(25:29)=N15
  487. S19(30:34)=N16
  488. S19(35:39)=N17
  489. S19(40:44)=N18
  490. S19(45:49)=N19
  491. WRIT S19 50
  492. FCLOSEO
  493. RETU
  494. Ask_Dial:
  495. N20=0
  496. WOPE 2 20 15 60 (contrast) ASK_ESC
  497. ATSA 2 22 (contrast) " Learn Dial  "
  498. ATSA 13 20 (contrast) "├───────────────────────────────────────┤"
  499. ATSA 14 22 (contrast) "Entry# (or m):"
  500. ATSA 15 30 (contrast) " Press ESC to cancel "
  501. CURS N5 N6
  502. SET FLAG(9) OFF
  503. Dial_Loo:
  504. SCRO 0,3,22 12,58 (contrast)
  505. FOR N21=1,10
  506. N24=N20+N21
  507. DIRE S0 N24
  508. ATSA (2+N21) 22 (contrast) N24*")"
  509. ATSA (2+N21) 27 (contrast) S0
  510. ENDF
  511. LOCA 14 37
  512. N22=37
  513. S2=""
  514. Dial_Key:
  515. IF NOT FLAG(9) KEYGET S0
  516. IF FLAG(9)
  517. WCLO
  518. SET SUCC OFF
  519. RETU
  520. ENDI
  521. LENG S0 N21
  522. SWIT N21
  523. CASE 1
  524. IF FIND S0 "m"
  525. S2=S0
  526. SET SUCC ON
  527. GOTO Dial_End
  528. ENDI
  529. IF NOT FIND "+-@#0123456789" S0
  530. SOUN 100,100
  531. GOTO Dial_Key
  532. ENDI
  533. S2=S2*S0
  534. ATSA 14 N22 (contrast) S0
  535. INC N22
  536. LOCA 14 N22
  537. GOTO Dial_Key
  538. ENDC
  539. CASE 2
  540. SWIT S0
  541. CASE "0D"
  542. SET SUCC ON
  543. GOTO DIAL_End
  544. ENDC
  545. CASE "08"
  546. LENG S2 N20
  547. IF GT N20 1
  548. S2=S2(0:N20-2)
  549. DEC N22
  550. LOCA 14 N22
  551. ATSA 14 N22 (contrast) " "
  552. ELSE
  553. S2=""
  554. N22=37
  555. ATSA 14 N22 (contrast) " "
  556. ENDI
  557. GOTO Dial_Key
  558. ENDC
  559. DEFA
  560. SOUN 100,100
  561. GOTO Dial_Key
  562. ENDC
  563. ENDS
  564. ENDC
  565. CASE 4
  566. SWIT S0
  567. CASE "4900"
  568. N20=N20-10
  569. IF LT N20 0
  570. N20=90
  571. ENDI
  572. GOTO Dial_Loo
  573. ENDC
  574. CASE "5100"
  575. N20=N20+10
  576. IF GE N20 100
  577. N20=0
  578. ENDI
  579. GOTO Dial_Loo
  580. ENDC
  581. CASE "4700"
  582. N20=0
  583. GOTO Dial_Loo
  584. ENDC
  585. CASE "4F00"
  586. N20=90
  587. GOTO Dial_Loo
  588. ENDC
  589. DEFA
  590. SOUN 100,100
  591. GOTO Dial_Key
  592. ENDC
  593. ENDS
  594. ENDC
  595. DEFA
  596. SET SUCC OFF
  597. ENDC
  598. ENDS
  599. Dial_End:
  600. SET SUCC ON
  601. LOCA N5 N6
  602. WCLO
  603. RETU
  604. Ask_Esc:
  605. SET FLAG(9) ON
  606. RETU
  607.